import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:repair_pda/pages/home/home_page.dart';
import 'package:repair_pda/widgets/tab_navigator.dart';

class NavigatorUtils {
  // 需要在进入系统首页后初始化
  // 在自定义 dao,service 中无法从前端页面获取 context
  // 初始化后在任何调用路由的地方都使用本 _context
  static BuildContext? _context;
  static updateContext(BuildContext context){
    NavigatorUtils._context = context;
  }
  static goHome(){
    Navigator.pushReplacement(_context!, MaterialPageRoute(builder: (context) => const HomePage()));
  }
  static goTabNavigator(){
    Navigator.pushReplacement(_context!, MaterialPageRoute(builder: (context) => const TabNavigator()));
  }
  // 返回上一页
  static pop(){
    // if(!Navigator.canPop(context)) return;
    // Navigator.pop(context);

    // 2025年7月8日 13:00:46 测试H5页面回退键的功能：
    // 从 bing 首页回退时会调用下面的 if 两次，导致退出 app - 原本设计是退回到app首页
    // 从 qq.com 首页回退时不会出现上面的问题 - 达到了预期，回退到 app 首页
    // 页面栈中还有上一级页面，则返回上一级页面
    if(Navigator.canPop(_context!)) {
      Navigator.pop(_context!);
    } else{
      SystemNavigator.pop();// 没有则退出app
    }
  }
}